package io.nobug.core;

import java.util.HashMap;
import java.util.Map;

import static java.awt.event.KeyEvent.*;

/**
 * 存放键位字符串与键码的映射关系
 *
 * @author db1995
 */
public final class KeyMapHolder {
    public static final Map<String, Integer> MAP = new HashMap<>();

    static {
        MAP.put("ESC", VK_ESCAPE);
        MAP.put("PS", VK_PRINTSCREEN);
        MAP.put("SL", VK_SCROLL_LOCK);
        MAP.put("PAUSE", VK_PAUSE);

        MAP.put("F1", VK_F1);
        MAP.put("F2", VK_F2);
        MAP.put("F3", VK_F3);
        MAP.put("F4", VK_F4);
        MAP.put("F5", VK_F5);
        MAP.put("F6", VK_F6);
        MAP.put("F7", VK_F7);
        MAP.put("F8", VK_F8);
        MAP.put("F9", VK_F9);
        MAP.put("F10", VK_F10);
        MAP.put("F11", VK_F11);
        MAP.put("F12", VK_F12);

        MAP.put("`", VK_BACK_QUOTE);
        MAP.put("1", VK_1);
        MAP.put("2", VK_2);
        MAP.put("3", VK_3);
        MAP.put("4", VK_4);
        MAP.put("5", VK_5);
        MAP.put("6", VK_6);
        MAP.put("7", VK_7);
        MAP.put("8", VK_8);
        MAP.put("9", VK_9);
        MAP.put("0", VK_0);

        MAP.put("INSERT", VK_INSERT);
        MAP.put("HOME", VK_HOME);
        MAP.put("END", VK_END);
        MAP.put("DELETE", VK_DELETE);
        MAP.put("PU", VK_PAGE_UP);
        MAP.put("PD", VK_PAGE_DOWN);

        MAP.put("TAB", VK_TAB);
        MAP.put("CL", VK_CAPS_LOCK);
        MAP.put("SHIFT", VK_PAGE_DOWN);
        MAP.put("CTRL", VK_CONTROL);
        MAP.put("WIN", VK_WINDOWS);
        MAP.put("ALT", VK_ALT);
        MAP.put("SPACE", VK_SPACE);
        MAP.put("MENU", VK_CONTEXT_MENU);
        MAP.put("ENTER", VK_ENTER);
        MAP.put("BACKSPACE", VK_BACK_SPACE);

        MAP.put("-", VK_MINUS);
        MAP.put("=", VK_EQUALS);
        MAP.put("[", VK_OPEN_BRACKET);
        MAP.put("]", VK_CLOSE_BRACKET);
        MAP.put("\\", VK_BACK_SLASH);
        MAP.put(";", VK_SEMICOLON);
        MAP.put("'", VK_QUOTE);
        MAP.put(",", VK_COMMA);
        MAP.put(".", VK_PERIOD);
        MAP.put("/", VK_SLASH);

        MAP.put("A", VK_A);
        MAP.put("B", VK_B);
        MAP.put("C", VK_C);
        MAP.put("D", VK_D);
        MAP.put("E", VK_E);
        MAP.put("F", VK_F);
        MAP.put("G", VK_G);
        MAP.put("H", VK_H);
        MAP.put("I", VK_I);
        MAP.put("J", VK_J);
        MAP.put("K", VK_K);
        MAP.put("L", VK_L);
        MAP.put("M", VK_M);
        MAP.put("N", VK_N);
        MAP.put("O", VK_O);
        MAP.put("P", VK_P);
        MAP.put("Q", VK_Q);
        MAP.put("R", VK_R);
        MAP.put("S", VK_S);
        MAP.put("T", VK_T);
        MAP.put("U", VK_U);
        MAP.put("V", VK_V);
        MAP.put("W", VK_W);
        MAP.put("X", VK_X);
        MAP.put("Y", VK_Y);
        MAP.put("Z", VK_Z);

        MAP.put("UP", VK_KP_UP);
        MAP.put("DOWN", VK_KP_DOWN);
        MAP.put("LEFT", VK_KP_LEFT);
        MAP.put("RIGHT", VK_KP_RIGHT);
    }

    private KeyMapHolder() {
    }
}
